package com.wanqing.entity;

import jakarta.validation.constraints.NotNull;
import lombok.Data;
import java.math.BigDecimal;

/**
 * 优惠券规则表实体类
 * 对应数据库表：voucher_rule
 */
@Data
public class VoucherRule {
    /**
     * 主键ID
     */
    private Long id;

    /**
     * 关联优惠券ID（外键关联voucher.id）
     */
    private Long voucherId;

    /**
     * 优惠类型：0-满减；1-折扣；2-立减
     */
    @NotNull(message = "优惠类型不能为空")
    private Byte discountType;

    /**
     * 满减门槛（discount_type=0时必填，如：满100减20则填100）
     */
    private BigDecimal minAmount;

    /**
     * 优惠值（满减填金额；折扣填比例，如8折填80；立减填金额）
     */
    @NotNull(message = "优惠值不能为空")
    private BigDecimal discountValue;

    /**
     * 限用品类（逗号分隔的品类ID，空表示全品类）
     */
    private String limitCategory;

    /**
     * 限用用户等级（1-普通；2-会员；空表示无限制）
     */
    private Byte limitUserLevel;

    /**
     * 单用户限领数量（默认1张）
     */
    private Integer perUserLimit;
}
